package com.core.java.oop;

/**
 * 1 抽象类用 abstract 关键字修饰
 * 2 抽象类不能被实例化，目的是为了被子类继承
 * 3 抽象类不能用 static、final 修饰
 *
 * @author: qilongxin
 * @date: 2021/12/16 17:05
 */
public abstract class Abstract {

    /**
     * 1 抽象方法只能在抽象类中定义，用 abstract 修饰
     * 2 抽象方法不能有方法体，目的是让子类重写
     * 3 抽象方法也不能用 static、final 修饰
     */
    abstract void world();


    /**
     * 除了有 abstract 修饰的类和方法，其他特点和普通类一样
     * 例如，可以和普通类一样拥有：成员变量、静态变量、静态初始化块、成员方法、静态方法。。。
     */
    String str1 = "hello";

    static String str2 = "abstract";

    static {
        String str3 = "str";
    }

    public void hello() {
        System.out.println("hello");
    }

    public static void test() {
        System.out.println("test");
    }

}
